home *** CD-ROM | disk | FTP | other *** search
Makefile | 1996-05-05 | 7.0 KB | 290 lines |
- #
- # $RCSfile: makefile.common,v $
- # $Revision: 1.1.1.1 $ $Date: 1996/05/04 21:55:06 $
- #
- include $(PATHTOROOT)/makefile.install
- include $(PATHTOROOT)/makefile.options
-
- .SUFFIXES: .rcslock .h .C .o .c .rcsdiff .co .ci .h-rcsdiff .c-rcsdiff .C-rcsdiff .h-ci .c-ci .C-ci .h-co .c-co .C-co
-
- .DEFAULT:
- @echo No such target: $* for `pwd`.
-
- # default for every make file.
- default: workspace.mod
-
- RCSFILES = $(MAKEFILES) $(FILESC) $(FILESH) $(LOCALRCSFILES)
- RCSDIR=$(BASELINE)/$(PARENT)/$(MODULE)/RCS
- GLOBALINCLUDE=-I$(PATHTOROOT)/include -I$(PATHTOROOT)/common/include
-
- ALLFLAGS=$(LOCALINCLUDE)\
- $(SPECIALINCLUDE)\
- $(GLOBALINCLUDE)\
- $(LOCAL_FLAGS)
-
- CFLAGS= $(ALLFLAGS) $(DEBUGFLAGS)
- COMPILE.C = $(CPLUSPLUS) $(LDFLAGS) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
-
- #workspace.mod: workspace.mod.recursive $(FILESO) $(EXECS) $(LINKS) $(PTREP)
- #workspace.mod: workspace.mod.recursive $(FILESO) $(EXECS) $(LINKS)
- workspace.mod: workspace.mod.recursive $(EXECS) $(LINKS)
-
- workspace.mod.recursive: $(MOD_WORKSPACE) true
- for i in `echo ${MOD_WORKSPACE}`;\
- do (cd $$i; $(MAKE) workspace.mod); done;
-
- workspace: workspace.1level workspace.recursive
-
- workspace.1level: makefile
-
- workspace.1level: $(RCSFILES) $(COPIES) $(MOD_WORKSPACE) $(MOD_BASELINE)
- # Creating makefile is only necessary if this directory has non-empty
- # MOD_WORKSPACE and non-empty MOD_BASELINE. This kludge accomplishes that.
- -for i in `echo ${LINKS}`;\
- do (ln -s $$i . ); done;
-
- makefile:
- -for i in `echo $(LITTLEMAKEFILE)`; do (\
- cp Makefile makefile;\
- chmod ug+w makefile;\
- ); done;
-
- workspace.recursive: $(MOD_WORKSPACE)
- -for i in `echo $(MOD_WORKSPACE)`;\
- do (cd $$i; $(MAKE) workspace); done;
- #
- # create the directory structure, item-at-a-time - target "workspace"
- # depends on this. dummymodules is there to keep the makefile
- # syntax ok even if $(MOD_WORKSPACE) and $(MOD_BASELINE) are empty.
- #
- $(MOD_WORKSPACE) $(MOD_BASELINE) dummymodules:
- ( mkdir $@;\
- cd $@;\
- touch makefile.depend;\
- co -q $(BASELINE)/$(PARENT)/$(MODULE)/$@/RCS/[mM]akefile*,v; \
- $(MAKE) makefile;\
- )
-
- #
- clean: $(MOD_WORKSPACE)
- for i in `echo $(MOD_WORKSPACE)`;\
- do (\
- cd $$i; \
- $(MAKE) $@\
- ); done;
- -rm -f *.o $(LOCALCLEANFILES) $(EXECS) ./$(MODULE)\
- tags* junk made makefile.depend makefile.depend.bak\
- sed.script
- touch makefile.depend
-
- $(RCSFILES) dummyrcsfiles:
- co $(LOCK) $(RCSDIR)/$@,v
-
- zerodepend:
- cat /dev/null > makefile.depend
-
- depend: zerodepend $(LINKSC) $(FILESC) $(SPECIAL_FILESC) $(FILESH) makefile.depend.tags $(MOD_WORKSPACE)
- @echo makedepend for $(MODULE)
- @if (test -r $(MODULE).C) then \
- echo makedepend $(MODULE).C ; \
- echo makedepend -fmakefile.depend -D__cplusplus -- $(CFLAGS) -- $(MODULE).C $(SPECIAL_FILESC) ;\
- makedepend -fmakefile.depend -D__cplusplus -- $(CFLAGS) -- $(MODULE).C $(SPECIAL_FILESC) ;\
- else \
- echo makedepend -fmakefile.depend -D__cplusplus -I/usr/misc/C++/include -- $(CFLAGS) -- $(FILESC) $(LINKSC) $(SPECIAL_FILESC) ; \
- makedepend -fmakefile.depend -D__cplusplus -I/usr/misc/C++/include -- $(CFLAGS) -- $(FILESC) $(LINKSC) $(SPECIAL_FILESC) ; \
- fi
- -@rm -f /tmp/makefile.depend.$$$$; touch /tmp/makefile.depend.$$$$;\
- sed -f $(PATHTOROOT)/makefile.sed makefile.depend >\
- /tmp/makefile.depend.$$$$;\
- cat /tmp/makefile.depend.$$$$ makefile.depend.tags | sort |\
- uniq > makefile.depend; rm /tmp/makefile.depend.$$$$
- @rm -f makefile.depend.tags
- @for i in `echo ${MOD_WORKSPACE}`; do (\
- cd $$i; \
- $(MAKE) "CC = $(CC)" $@\
- ); done;
-
-
- # Get baseline for those modules listed in $(MOD_BASELINE),
- # and do recursive make for those listed in $(MOD_WORKSPACE)
- #
- getbaselineparts: $(MOD_BASELINE) $(MOD_WORKSPACE)
- for i in `echo ${MOD_BASELINE}`; do (\
- cd $$i;\
- $(MAKE) getbaseline\
- ); done;
- for i in `echo ${MOD_WORKSPACE}`; do (\
- cd $$i; \
- $(MAKE) $@\
- ); done;
-
- $(LIBS) dummylibs:
- (cd $(@D); $(MAKE) $(@F))
-
- #
- # RCS STUFF
- #
- # rcsdiff target assumes that you have some thing(s) in the current
- # directory and that you have an RCS subdir or a link to such a thing.
- #
- rcsdiff: $(MOD_WORKSPACE)
- -for i in `echo $(RCSFILES)`;\
- do rcsdiff $(LOCK) $(RCSDIR)/$$i,v; done;
- -for i in `echo $(MOD_WORKSPACE)`; do (\
- cd $$i;\
- $(MAKE) $@\
- ); done;
-
- .h.h-ci:
- ci -u $(RCSDIR)/$<,v
- .h.ci:
- ci -u $(RCSDIR)/$<,v
- .c.c-ci:
- ci -u $(RCSDIR)/$<,v
- .c.ci:
- ci -u $(RCSDIR)/$<,v
- .C.C-ci:
- ci -u $(RCSDIR)/$<,v
- .C.ci:
- ci -u $(RCSDIR)/$<,v
-
- .h.h-co:
- co -l $(RCSDIR)/$<,v
- .h.co:
- co -l $(RCSDIR)/$<,v
- .c.c-co:
- co -l $(RCSDIR)/$<,v
- .c.co:
- co -l $(RCSDIR)/$<,v
- .C.C-co:
- co -l $(RCSDIR)/$<,v
- .C.co:
- co -l $(RCSDIR)/$<,v
-
- .h.h-rcsdiff:
- -rcsdiff $(RCSDIR)/$<,v
- .h.rcsdiff:
- -rcsdiff $(RCSDIR)/$<,v
- .c.c-rcsdiff:
- -rcsdiff $(RCSDIR)/$<,v
- .c.rcsdiff:
- -rcsdiff $(RCSDIR)/$<,v
- .C.C-rcsdiff:
- -rcsdiff $(RCSDIR)/$<,v
- .C.rcsdiff:
- -rcsdiff $(RCSDIR)/$<,v
-
- .c.rcslock:
- co -l $(RCSDIR)/$*.c,v
-
- .C.rcslock:
- co -l $(RCSDIR)/$*.C,v
-
- #
- # COMPILATION
- #
-
- .c.o:
- $(CC) -c $(CFLAGS) $*.c
-
- .C.o:
- $(COMPILE.C) $< $(OUTPUT_OPTIONS)
-
- true:
- @echo
-
- links : true
- -for i in `echo ${LINKS}`;\
- do (ln -s $$i . ); done;
-
- copies: $(COPIES)
-
- #$(PTREP) dummyptrep:
- # -$(CPLUSPLUS) $(INCLUDES) $(CFLAGS) $@.C
- # @-echo "^^^ IGNORE ^^^: (The above is necessary to get the ptrepository made.)"
- # @-echo "unless template symbols are unresolved (with AT&T C++), in which case,"
- # @-echo "setenv PTOPTS -pta"
- # @-echo "and re-make."
- # -rm -f $@
-
- $(LINKS) dummylink:
- (cd $(@D); $(MAKE) $(@F))
- -ln -s $@ .
-
- $(COPIES) dummycopy: true
- -cp $@ .
-
- co: $(MOD_WORKSPACE)
- -for i in `echo $(RCSFILES)`;\
- do co $(LOCK) $(RCSDIR)/$$i,v; done;
- for i in `echo $(MOD_WORKSPACE)`; do (\
- cd $$i;\
- $(MAKE) "LOCK=$(LOCK)" $@\
- ); done;
-
- ci:
- -for i in `echo $(MAKEFILES)`;\
- do ci $(LOCK) $(RCSDIR)/$$i,v; done;
- -for i in `echo $(FILESC) $(FILESH) $(LOCALRCSFILES)`;\
- do ci $(LOCK) $(RCSDIR)/$$i,v; done;
- -for i in `echo $(MOD_WORKSPACE)`; do (\
- cd $$i; \
- echo $$i;\
- $(MAKE) "LOCK=$(LOCK)" $@\
- ); done;
-
- touch: $(MOD_WORKSPACE)
- for i in `echo ${MOD_WORKSPACE}`; \
- do (cd $$i; $(MAKE) $@); done;
- touch $(EXECS) $(FILESO)
-
- saber_obj:
- #load $(CFLAGS) $(FILESO)
-
- saber_src:
- #load $(CFLAGS) $(FILESC)
-
- install: workspace.mod local_install
- local_install: $(EXECS) $(RESULTS)
- for i in `echo $(EXECS)`; do (\
- cp $$i $(BINDIR);\
- strip $(BINDIR)/$$i;\
- ); done;
-
-
- binary_install_exec: $(FILESO)
- $(CPLUSPLUS) $(LDFLAGS) $(CFLAGS) $(FILESO) $(BINARY_INSTALL_LIBS)\
- -o $(BINDIR)/$(EXECS)
- strip $(BINDIR)/$(EXECS)
-
- source_release: source_release_subdirs
- source_release_subdirs:
- for i in `echo $(MOD_WORKSPACE)`;\
- do (cd $$i; $(MAKE) source_release); done;
-
- cleaninstall: cleaninstall_binaries
- cleaninstall_binaries:
- for i in `echo $(EXECS) $(RESULTS)`; do (\
- rm -f $$i;\
- ); done;
-
- makercs: $(MOD_WORKSPACE) $(MOD_BASELINE)
- ln -s $(BASELINE)/$(PARENT)/$(MODULE)/RCS RCS
- for i in `echo $(MOD_WORKSPACE) $(MOD_BASELINE)`; do (\
- cd $$i;\
- $(MAKE) $@\
- ); done;
-
- getmakefiles.1level:
- -for i in `echo $(MAKEFILES)`; do \
- co $(LOCK) $(RCSDIR)/$$i,v;\
- done;
-
- getmakefiles: getmakefiles.1level $(MOD_WORKSPACE) $(MOD_BASELINE)
- for i in `echo $(MOD_WORKSPACE) $(MOD_BASELINE)`; do (\
- cd $$i; \
- $(MAKE) $@ \
- ); done;
-
- include $(PATHTOROOT)/makefile.tags
-